import { IAppOption } from "../../../typings"
import { getAssets } from "../../utils/api"

const app = getApp<IAppOption>()

Page({

  /**
   * 页面的初始数据
   */
  data: {
      headerPaddingTop: -1,
      userInfo: app.globalData.environment?.userInfo,
      assets: {
        integral: "--",
        balance: "--",
        coupon_num: "--",
      }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
      // 获取胶囊坐标位置
      const ButtonRes = wx.getMenuButtonBoundingClientRect()
      //获取手机设备情况
      wx.getSystemInfo({
          success: (res) => {
              // 小程序头部的高度包括： 胶囊距离上边界坐标（top） + 胶囊距离下边界坐标（bottom） - 设备状态栏高度（statusBarHeight）
              this.data.headerPaddingTop = ButtonRes.bottom + ButtonRes.top - res.statusBarHeight
              this.setData({
                  headerPaddingTop: this.data.headerPaddingTop
              })
          }
      })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
      this.loadData();
      this.data.userInfo = app.globalData.environment?.userInfo
      this.setData({
          userInfo: this.data.userInfo
      })
  },

  /**
   * 初次加载或者下拉刷新的时候的加载数据操作
   */
  loadData() {
      // logined
      if(app.globalData.environment?.userInfo) {
        let p = getAssets()
        p.then((res: any) => {
            wx.stopPullDownRefresh()
            this.data.assets = res
            this.setData({
                assets: this.data.assets
            })
        }).catch(_ => {
            wx.stopPullDownRefresh()
        })
      }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.loadData();
    // 最多1秒关闭下拉框
    setTimeout(() => {
        wx.stopPullDownRefresh()
    }, 1000)
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage(_pts): WechatMiniprogram.Page.ICustomShareContent {
      return {}
  },
  // 登录
  redirectLogin(options: WechatMiniprogram.ControlTap) {
      app.redirectLogin(options.target.dataset.redirecturl)
  },
  logout(_options: WechatMiniprogram.ControlTap) {
      let that = this;
      wx.showModal({
          title: "友情提示",
          content: "您确定要退出登录吗？",
          success: function (_: WechatMiniprogram.ShowModalSuccessCallbackResult) {
            that.data.userInfo = null
            that.data.assets = {
                integral: "--",
                balance: "--",
                coupon_num: "--",
            }
            let initEnvironmentData = {
                openid: null,
                userInfo: null,
                localUserInfo: null,
                token: "",
                tokenExpTime: 0
            }
            app.globalData.environment = Object.assign(app.globalData.environment, initEnvironmentData)
            wx.clearStorageSync()
            that.setData({
                userInfo: that.data.userInfo,
                assets: that.data.assets
            })
            console.log(app.globalData.environment)
          }
      })
  }

})

// 解决无法重新声明块级范围变量的问题
export {}